package lesson02;

/**
 * 线程等待
 *
 * @author wileda
 * @date 2023/01/05  10:14
 */
public class Demo07 {
    public static void main(String[] args) {
        // 创建线程
        Thread thread = new Thread(() -> {
            // 执行一个有退出条件的任务
            for (int i = 0; i < 5; i++) {
                System.out.println("hello thread. " + i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        // 启动线程
        thread.start();

        System.out.println("join之前，线程状态：" + thread.getState());
        System.out.println("join之前，是否存活：" + thread.isAlive());
        // 使用join等待thread线程结束
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("join之后，线程状态：" + thread.getState());
        System.out.println("join之后，是否存活：" + thread.isAlive());
        System.out.println("主线程执行完成。");
    }
}
